]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ShellContactSystem: Make address search actually work
authorMatthias Clasen <mclasen@redhat.com>
Tue, 4 Oct 2011 20:19:09 +0000 (16:19 -0400)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 5 Oct 2011 18:26:39 +0000 (20:26 +0200)
The code was not dealing properly with what folks returns
for im and email addresses.

https://bugzilla.gnome.org/show_bug.cgi?id=660925

src/shell-contact-system.c

index d02c1e26a27af4dabcfec451631c15c02229c783..4a2b9589934fe3a65c0ec0e992d6a9aa216ab50c 100644 (file)
@@ -188,7 +188,8 @@ do_match (ShellContactSystem  *self,
 
       while (gee_iterator_next (addrs_iter))
         {
-          const gchar *addr = gee_iterator_get (addrs_iter);
+          FolksImFieldDetails *field = gee_iterator_get (addrs_iter);
+          const gchar *addr = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*)field);
 
           p = strstr (addr, term);
           if (p == addr)
@@ -201,13 +202,16 @@ do_match (ShellContactSystem  *self,
               have_addr_substring = TRUE;
               matched = TRUE;
             }
+
+          g_object_unref (field);
         }
 
       g_object_unref (addrs_iter);
       addrs_iter = gee_iterable_iterator (GEE_ITERABLE (email_addrs));
       while (gee_iterator_next (addrs_iter))
         {
-          const gchar *addr = gee_iterator_get (addrs_iter);
+          FolksEmailFieldDetails *field = gee_iterator_get (addrs_iter);
+          const gchar *addr = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*)field);
 
           p = strstr (addr, term);
           if (p == addr)
@@ -220,6 +224,8 @@ do_match (ShellContactSystem  *self,
               have_addr_substring = TRUE;
               matched = TRUE;
             }
+
+          g_object_unref (field);
         }
 
       g_object_unref (addrs_iter);